#include <iostream>
using namespace std;

#include "../GravitationalAcrection/CGravitationalAcretion.h"
#include "../Particle/CParticle.h"  
#include "../SolarNebula/CSolarNebula.h"
#include "CCataclismAcretion.h"


typedef CParticle<CParticleTraits>	particle_t;
typedef CSolarNebula<particle_t>	solar_nebula_t;
typedef CGravitationalAcretion<solar_nebula_t> gravitational_acretion_t;
typedef CCataclismAcretion<gravitational_acretion_t> cataclism_acretion_t;


int main (int , char * []) {
	cout << "Making nebula" << endl;
	solar_nebula_t  _s ("../SolarNebula/coil100.txt", 12, 7200, 84, false);
//	solar_nebula_t  _s ("../SolarNebula/iris.txt", 4, 150, 10, true);
//	cout << _s << endl;
	gravitational_acretion_t _g(_s._nebula,_s._size, .01, .1, 20, 84, 3);
//	cout << _g << endl;


	CPattern<double> query;
	
/*	query.push_back(6.7);
	query.push_back(3.3);
	query.push_back(5.7);
	query.push_back(2.5);
*/	

	query.push_back(6);
	query.push_back(48);
	query.push_back(19);
	query.push_back(15);
	query.push_back(17);
	query.push_back(10);
	query.push_back(16);
	query.push_back(14);
	query.push_back(14);
	query.push_back(17);
	query.push_back(17);
	query.push_back(15);
	
	cataclism_acretion_t _c (_g._planetesimals, query);
	_c(20,9,.5);
	_c.__export();
	return true;
}